package com.optimatch.ui.model;

import java.util.Observable;

import com.optimatch.ui.model.beans.Equipe;
import com.optimatch.ui.model.beans.Probleme;

public class Model  extends Observable {

	public static final int AJOUT_EQUIPE = 1;
	public static final int AJOUT_CONTRAINTE = 2;
	public static final int RETRAIT_EQUIPE = 10;
	
	private Probleme probleme;
	
	public Model() {
		this.probleme = new Probleme();
	}
	
	public Probleme getProbleme() {
		return this.probleme;
	}
	
	public void setProbleme(Probleme p) {
		probleme = p;
	}
	
	public void fixerDateMatch(int journee, int eq1, int eq2, boolean domicile) {
		probleme.fixerMatchDate(journee, eq1, eq2, domicile);
		setChanged();
		notifyObservers(AJOUT_CONTRAINTE);
	}
	
	public void fixerPeriodeMatch(int journeeMin, int journeeMax, int eq1, int eq2, boolean domicile) {
		probleme.fixerMatchPeriode(journeeMin, journeeMax, eq1, eq2, domicile);
		setChanged();
		notifyObservers(AJOUT_CONTRAINTE);
	}
	
	public void ajouterEquipe(Equipe eq) {
		this.getProbleme().ajouterEquipe(eq);
		setChanged();
		notifyObservers(AJOUT_EQUIPE);
	}
	
	public void ajouterEquipe(String nom, String nomVille) {
		this.getProbleme().ajouterEquipe(nom,nomVille);
		setChanged();
		notifyObservers(AJOUT_EQUIPE);
	}
	
	public void retirerEquipe(int i) {
		this.getProbleme().retirerEquipe(i);
		setChanged();
		notifyObservers(RETRAIT_EQUIPE + i);
	}

}
